//===================================================
/**
 * @description 工具函数集合
 * @author Brave Chan
 * @version 1.0.2
 */
//===================================================
/**
 * 自增数字生成器
 * @param {*} start
 * @param {*} step
 */
export function autoincrement(start, step) {
  return (function(s = 0, t = 1, i = -1) {
    return function() {
      let safe = Number.isSafeInteger((s + (i+=t)));
      if (!safe) {
        console.error('In autoincrement at bex package, it is not a safe integer.');
        return 0;
      }
      return (s + (i+=t)).toString(16);
    };
  })(start, step);
}

/**
 * 是否是纯对象
 * @param {*} value
 */
export function isObject(value) {
  return Object.prototype.toString.call(value) === '[object Object]';
}

/**
 * @description 是否绝对不存在，将会与`undefined, null, 'undefined', 'null'`进行比较
 * @param {*} value
 * @returns
 */
export function isANothing(value) {
  return value === void 0 || value === null || value === 'undefined' || value === 'null';
}

/**
 * @description 是否不存在，将会与`undefined, null`比较
 * @param {*} value
 * @returns
 */
export function isNothing(value) {
  return value === void 0 || value === null;
}

/**
 * @description 是否是函数
 * @param {*} value
 * @returns
 */
export function isFunction(value) {
  return typeof value === 'function';
}
//===================================================

//===================================================
